﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using Janus.Windows.GridEX;
using System.Collections;
using HFW.Share;
using HFW.DataProvider;
using Timer = System.Windows.Forms.Timer;


namespace HFW.ADM
{
    public partial class frmUserManagement : BaseForm
    {
        private string UserID = "";
        public frmUserManagement()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.frmUserManagement_Load);

        }

        private void frmUserManagement_Load(object sender, EventArgs e)
        {
            RefreshGrid();
        }

        private void RefreshGrid()
        {
            using(var  conn = new Connection())
            {
                try
                {
                    var ds = conn.RunSQLQuery("ADM_Users_lst", CommandType.StoredProcedure);
                    grdOverview.DataSource = ds.Tables[0];

                }
                catch (Exception)
                {
                    MessageBoxEX.Show("Error 8 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                      MessageBoxButtons.OK,
                                      MessageBoxIcon.Error);
                }
            }
        }

        private void grdOverview_RowDoubleClick(object sender, RowActionEventArgs e)
        {
            uiTab.SelectedIndex = 1;
            UserID = e.Row.Cells["UserID"].Value.ToString().Trim();

            txtUserName.Focus();
            txtUserID.Text = UserID;
            txtPassword.Text = e.Row.Cells["Password"].Value.ToString().Trim();
            txtPasswordConfirm.Text = e.Row.Cells["Password"].Value.ToString().Trim();
            txtUserName.Text = e.Row.Cells["UserName"].Value.ToString().Trim();
            txtDescription.Text = e.Row.Cells["Description"].Value.ToString().Trim();
            chkIsActive.Checked = (bool)e.Row.Cells["IsActive"].Value;

        }

        private void uiButtonSave_Click(object sender, EventArgs e)
        {
            using (var conn = new Connection())
            {
                try
                {
                    if (txtPassword.Text.Trim() == txtPasswordConfirm.Text.Trim())
                    {
                        if (txtPassword.Text.Trim() == string.Empty)
                        {
                            MessageBoxEX.Show("Vui lòng nhập mật khẩu.", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            txtPassword.Focus();
                            return;
                        }

                        conn.RunDynamicSQLNonQuery("ADM_UserAccounts_ups",
                                                   new object[]
                                                       {
                                                           txtUserID.Text.Trim(), txtPassword.Text.Trim(),
                                                           txtUserName.Text.Trim(), txtDescription.Text.Trim(),
                                                           chkIsActive.Checked, "USER"
                                                       });
                        Applications.CURRENT_MESSAGE = "Lưu thành công";

                    }
                    else
                    {
                        MessageBoxEX.Show("Xác nhận mật khẩu chưa chính xác.", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtPassword.Focus();
                        txtPassword.SelectAll();
                    }
                   
                }
                catch (Exception)
                {
                    MessageBoxEX.Show("Error 9 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                     MessageBoxButtons.OK,
                                     MessageBoxIcon.Error);
                }
            }
        }

        

        private void grdOverview_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            if(grdOverview.GetValue("UserID").ToString()=="ADMIN")
            {
                MessageBoxEX.Show("Không thể xoá tài khoản ADMIN", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.OK,MessageBoxIcon.Warning);
                e.Cancel = true;
                return;
            }
            if (MessageBoxEX.Show("Xác nhận xoá tên đăng nhập '" + grdOverview.GetValue("UserID") + "'", Applications.APPLICATION_TITLE_MESSAGEBOX, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                e.Cancel = true;
                return;
            }
            using (var conn = new Connection())
            {
                try
                {
                    conn.RunDynamicSQLQuery("ADM_UserAccounts_del", new object[] { grdOverview.GetValue("UserID").ToString() });
                    RefreshGrid();
                }
                catch (Exception)
                {
                    MessageBoxEX.Show("Error 10 : Lỗi kết nối cơ sở dữ liệu", Applications.APPLICATION_TITLE_MESSAGEBOX,
                                     MessageBoxButtons.OK,
                                     MessageBoxIcon.Error);
                }
            }
            
        }
    }
}
